package br.com.spb.persistence;

import  br.com.spb.domain.Municipio;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import br.com.spb.support.Dao;

 
@SuppressWarnings("unchecked")
public class MunicipioDao extends Dao<Municipio>{
    
    
    /**
     * @param sigUf
     * @param nome
     * @param numDDD
     * @return
     */
    public List<Municipio> findByParametros(String sigUf, String nome, Integer numDDD) {
        Criteria criteria = createCriteria();

        if (sigUf != null) {
            criteria.add(Restrictions.like("sigUf", sigUf, MatchMode.ANYWHERE).ignoreCase());
        }
        
        if (nome != null) {
        	criteria.add(Restrictions.like("nome", nome, MatchMode.ANYWHERE).ignoreCase());
        }
        
        if (numDDD != null) {
        	criteria.add(Restrictions.eq("numDDD", numDDD));
        }
        criteria.addOrder(Order.asc("nome"));

		List<Municipio> lista = (List<Municipio>) criteria.list();

        return lista;
    } 
   

    /**
     * @param nome
     * @return
     */
    public Municipio findByName(String nome) {
        Criteria criteria = createCriteria();
 
         
        criteria.add(Restrictions.like("nome", nome, MatchMode.ANYWHERE).ignoreCase()); 

		List<Municipio> lista = (List<Municipio>) criteria.list();
		Municipio municipio = null;
		
		if(lista.size() > 0){
			municipio = lista.get(0);
		}
        return municipio;
    } 
}
